﻿using System;
using System.Collections.Generic;
using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Spring.Transaction.Interceptor;

namespace Acaweb.Data.Dao.NHibernate
{
    public class InscritosDao : HibernateDao<Inscritos, int>, IInscritosDao
    {
        [Transaction(ReadOnly = true)]
        public IList<Inscritos> GetAll()
        {
            return GetAll<Inscritos>();
        }

        public IList<Inscritos> GetByIdentificacion(Identificacion Identificacion)
        {
            return this.Session.QueryOver<Inscritos>().Where(t => t.Identificacion == Identificacion).List();
        }

        public IList<Inscritos> GetByPlanEstudio(int PlanEstudio)
        {
            return this.Session.QueryOver<Inscritos>().Where(t => t.CodigoPlan == PlanEstudio).List();
        }

        public IList<Inscritos> GetByAdmitidos(bool Aceptados, PeriodoAcademico PeriodoAcademico)
        {
            if (Aceptados)
                return this.Session.QueryOver<Inscritos>().Where(t => t.CodigoAdmitido != 0 && t.Interesado.InteresadoPk.PeriodoAcedemico == PeriodoAcademico).List();
            else
                return this.Session.QueryOver<Inscritos>().Where(t => t.CodigoAdmitido == 0 && t.Interesado.InteresadoPk.PeriodoAcedemico == PeriodoAcademico).List();
        }

        public IList<Inscritos> GetByPeriodoAcademico(PeriodoAcademico Periodo)
        {
            return this.Session.QueryOver<Inscritos>().Where(t => t.Interesado.InteresadoPk.PeriodoAcedemico == Periodo).List();
        }
    }
}